﻿#ifndef LK_NETWORK_TCPNODE_
#define LK_NETWORK_TCPNODE_
namespace LK{
	namespace Network {
		namespace Tcp {
			typedef ptr<TcpNode> PTcpNode;
			struct TcpNode :Object{
				IMETHODS(PTcpNode, TcpNode)
				/**
				@brief 绑定指定的地址和端口*/
				void Bind(PString address,PString port);
				/**
				@brief 绑定指定的端口*/
				void Bind(PString port);
				/**
				@brief 进行监听*/
				void Listen();
				/**
				@brief 接收连接请求并返回套接字*/
				PSocket Accept();
				/**
				@brief 连接指定的IP和端口*/
				PSocket Connect(PString address,PString port);
				/**
				@brief 连接指定的IP和端口，返回一个可以用来发送数据的套接字对象代理*/
				PSocket Connect(PString addrport);
				/**
				@brief 关闭传输*/
				void Close();
				/**
				@brief 构造函数*/
				TcpNode();
			protected:
				PSocket soc;
			};
		}
	}
}
#endif